//负责操作localstorage的帮助文件
/**
 获取数据:var str = localStorage.getItem(key)
 添加和追加数据:localStorage.setItem(key,value),value是一个字符串
 移除数据:localStorage.removeItem(key)
 */

// 1.0 定义常量key，将来操作的localStorage中的数据都以这个key来作为标识
export const KEY = 'goodsdata';
export var valueObj = {goodsid:0,count:0};

// 2.0 实现数据的增加
// value 格式：{goodsid:87,count:10}
export function setItem(value){
 // 1.0 获取json格式
 var jsonString = localStorage.getItem(KEY);
 jsonString = jsonString || '[]';
 var arr = JSON.parse(jsonString);
 // 2.0 将value追加进入arr
 arr.push(value);
 // 3.0 将arr转换为json字符串保存起来
 localStorage.setItem(KEY,JSON.stringify(arr));
}

// 3.0 获取数据
// value是一个标准的json格式
export function getItem(){
 var jsonString = localStorage.getItem(KEY);
 //将json格式字符串转换成js对象
 jsonString = jsonString || '[]';
 return JSON.parse(jsonString);
}

// 4.0 移除数据
export function removeItem(goodsid){
  var arr = getItem();
    // 查找arr中的goodsid和传入的参数goodsid一致的数据全部移除
    for(var i = arr.length - 1; i > 0; i--){
        if(arr[i].goodsid == goodsid){
            arr.splice(i,1);
        }
    }
    //将最新的arr保存回localStorage中
    localStorage.setItem(KEY,JSON.stringify(arr));
}

// 5.0 将localStroge 中的数据全部整合成一个对象的形式
/**
 商品id的值：商品的购买数量

 真正的数据：87:4

 */
export function getgoodsObject(){
 // arr的格式：
 //   [{goodsid:87,count:1},{goodsid:88,count:2}]
 // 获取数组
 var arr = getItem();
 var resObj ={};
 // 将arr数组中的goodsid相同的多个对象合并成同一个对象
 for(var i = 0; i < arr.length; i++){
  var item = arr[i];
  if(!resObj[item.goodsid]){
   // 如果没有当前商品的数据，则添加一个数据
   resObj[item.goodsid] = item.count;
  }else {
   // 已经有当前商品的数据了，则将count增加
   var count = resObj[item.goodsid];
   resObj[item.goodsid] = count + item.count;
  }
 }
 return resObj;
}

//obj格式：{goodsid:87,type:'add'}
export function updateaData(obj){
  var arr = getItem();
  var count = 1;
  if(obj.type === 'add'){
    //加
    arr.push({goodsid:obj.goodsid,count:count});
  }else {
    // 减
    for(var i = 0; i < arr.length; i++){
      // 如果这个对象中的count值等于1，则删除这个对象，否则将这个对象的count值减1以后保存回去
     if(arr[i].goodsid == obj.goodsid){
      if(arr[i].count > 1) {
       arr[i].count--;
       break;
      }else {
       //删除此对象
       arr.splice(i,1);
       break;
      }
     }
    }
  }
 //将最新的arr保存回localStorage中
 localStorage.setItem(KEY,JSON.stringify(arr));
}